// 修饰符（类中的成员的修饰符）:主要是描述中的成员（属性，构造函数，方法）的可访问性
// 类中的成员都有自己的默认修饰符public
// public修饰符，类中成员默认的修饰符，代表的是公共的，任何位置都可以访问类中的成员
// private修饰符，类中的成员如果使用private来修饰，那么外部是无法访问这个成员数据的
// protected修饰符，类中的成员如果使用protected来修饰，那么外部是无法访问这个成员数据的，当然，子类中是可以访问该成员数据的
(() => {
  // 定义一个类
  class Person {
    // 属性
    protected name: string;
    // 构造函数
    constructor(name: string) {
      this.name = name;
    }
    eat() {
      console.log("这个骨头真好吃", this.name);
    }
  }
  class Student extends Person {
    constructor(name: string) {
      super(name);
    }
    play() {
      console.log("我就喜欢玩布娃娃", this.name);
    }
  }

  const per = new Person("大蛇丸");
  // 类的外部可以访问类中的属性成员
  // console.log(per.name);
  per.eat();
})();
